package day13;

import java.io.*;

/*本类用于测试字符流读取*/
public class TestIn2 {
    public static void main(String[] args) {
        //method();//普通字符流读取
        method2();//高效字符流读取
    }
    private static void method() {
        try {
            //1.创建字符流对象用来读取
            //Reader in = new Reader();//报错,因为抽象父类不可以实例化
            //Reader in2 = new FileReader(new File("D:\\ready\\1.txt"));//传的是file
            Reader in = new FileReader("D:\\ready\\1.txt");//传的是路径
            //2.通过刚刚创建好的流对象,开始读取
            /*read(),每次读取一个字符,如果读到了数据的末尾,返回-1*/
            System.out.println(in.read());//97,每次这样调用read(),就读取一个字符
            //3.需求:循环读取指定文件中的所有字符
            //3.1 定义变量,用来保存读到的数据
            int b;
            //3.2 循环读取
            while ( (b = in.read()) != -1 ){
                System.out.println(b);
            }
            //4.释放资源
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void method2() {
        try{
            //1.创建流
            /*高效流高效的原因在于底层维护了一个byte[],8192大小*/
//            Reader in2 = new BufferedReader(
//                    new FileReader(new File("D:\\ready\\1.txt")));
            Reader in = new BufferedReader(
                    new FileReader("D:\\ready\\1.txt"));
            //2.使用流
            int b ;
            while((b = in.read()) != -1){
                System.out.println(b);
            }
            //3.关流
            in.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
